package com.navinfo.platform.trip.common.arithmetic.manager;

import com.navinfo.platform.trip.common.arithmetic.data.DrivingData;
import com.navinfo.platform.trip.common.arithmetic.data.OuterStatisticData;

/**
 * 驾驶行为算法接口.
 * @author 水哥
 */
public interface IArithmetic {
    /**
     * 每个位置点的算法初始化入口
     * @param drivingData 算法链的缓存数据
     */
    IArithmetic init(DrivingData drivingData);

    /**
     * 每个位置点的算法计算入口.
     */
    void calculate();

    /**
     * 行程结束时，将当前算法的统计变量结果放到的全局统计对象中，并进行单位转换
     * @param statisticDataOut 统计对象
     */
    void collect(OuterStatisticData statisticDataOut);
}
